#include <iostream>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <signal.h>


//_______________________________________________________________________
// 信号处理函数：捕获资源限制触发的信号
// void handler(int signo) {
//     std::cout << "Caught signal: " << signo << std::endl;
//     exit(1);
// }

// int main() {
//     // 注册所有信号处理函数（1-31号常规信号）
//     for (int i = 1; i <= 31; i++) {
//         signal(i, handler);
//     }

//     // 设置虚拟内存限制（40MB）
//     struct rlimit r;
//     r.rlim_cur = 1024 * 1024 * 40;  // 软限制：40MB
//     r.rlim_max = RLIM_INFINITY;     // 硬限制：无上限
//     if (setrlimit(RLIMIT_AS, &r) != 0) {
//         std::cerr << "Failed to set memory limit!" << std::endl;
//         return 1;
//     }

//     // 限制累计运行时长
//     // struct rlimit r;
//     // r.rlim_cur = 1;
//     // r.rlim_max = RLIM_INFINITY;
//     // setrlimit(RLIMIT_CPU, &r);
//     //while(1);


//     // 持续分配内存，触发资源限制
//     int count = 0;
//     while (true) {
//         int* p = new int[1024 * 1024];  // 每次分配1MB内存
//         if (!p) {
//             std::cout << "Memory allocation failed!" << std::endl;
//             break;
//         }
//         count++;
//         std::cout << "Allocated: " << count << " MB" << std::endl;
//         sleep(1);  // 每秒分配一次，便于观察
//     }

//     return 0;
// }

//_______________________________________________________________________

//json演示使用
#include <jsoncpp/json/json.h>
 
 int main()
 {
    //序列化工作
    //value 是一个Json的中间类，可以填充KV值、
    Json::Value root;
    root["code"]="mycode";
    root["user"]="lsy";
    root["age"]="19";
    //格式化输出，
    //Json::StylerWriter writer;
    Json::FastWriter writer;
    std::string str=writer.write(root);
    std::cout << "Json String: " << str << std::endl;
 }